<?php
// +----------------------------------------------------------------------
// | 幕小铺
// +----------------------------------------------------------------------
// | 版权所有 2016~2020 幕小铺科技（大连）有限公司
// +----------------------------------------------------------------------
// | 2020/03/14
// +----------------------------------------------------------------------

namespace app\erp\admin;

use app\admin\controller\Admin;
use think\Db;
use app\common\builder\ZBuilder;
/**
 * 商品规格
 * @package app\cms\admin
 */
class Specifications extends Admin
{
	/**
     * 首页
     * @author shiqiang
     * @return mixed
     */
    public function index(){	
		cookie('__forward__', $_SERVER['REQUEST_URI']);
		
		// 获取筛选
        $map = $this->getMap();
		
		//数据获取
        $data = input();
		
		// 数据列表
        $data_list = model('ErpSpecifications', 'model') -> where($map) -> order('sort asc, create_time desc') -> paginate();
		
		$btn_attribute = [
			'title' => '预设属性',
			'icon'  => 'fa fa-fw fa-key',
			'class' => 'btn btn-xs btn-default',
			'href'  => url('Specifications_attribute/index', ['sid' => '__id__']),
		];
		
		// 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
            ->setPageTitle('规格管理') // 设置页面标题
            ->setPrimaryKey('id') // 设置主键名为username
            ->setTableName('erp_specifications') // 设置数据表名
            ->addColumns([ // 批量添加列
                // ['__INDEX__', '序号'],
                ['id', '规格ID'],
                ['title', '规格名称', 'text.edit'],
                ['code', '规格编码'],
                ['sort', '排序', 'text.edit'],
                ['create_time', '创建时间', 'datetime'],
                ['right_button', '操作', 'btn']
            ])
			->setSearchArea([
				['text', 'id', '规格ID'],
                ['text', 'title', '规格名称', 'like'],
                ['text', 'code', '规格编码', 'like'],
				['daterange', 'create_time', '创建时间'],
            ])
			// ->setSearch(['id' => '规格ID', 'title' => '规格名称', 'code' => '规格编码']) // 设置搜索参数
			->addTopButton('add', '', ['area' => ['50%', '80%']]) // 添加授权按钮
            ->addRightButton('edit', '', ['area' => ['50%', '80%']]) // 批量添加右侧按钮
            ->addRightButton('delete') // 批量添加右侧按钮
            ->addRightButton('custom', $btn_attribute, true) // 添加授权按钮
            ->setRowList($data_list) // 设置表格数据
            ->fetch(); // 渲染页面
    }
	
	/**
     * 新增
     * @author shiqiang
     * @return mixed
     * @throws \think\Exception
     */
    public function add(){   
		// 保存数据
		if ($this->request->isPost()) {
			//数据接收
			$data = $this->request->post('', null, 'trim');
			$title      = isset($data['title']) ? $data['title'] : '';
			$code  		= isset($data['code']) ? $data['code'] : '';
			$sort  		= isset($data['sort']) ? $data['sort'] : '';

			//数据验证
			$Validate = validate('Specifications', 'validate');
			if( !$Validate -> scene('specifications_add') -> check($data) ){
				$this->error($Validate -> getError());
			}
			
			$rel = model('ErpSpecifications','model') -> addData($title, $sort, $code);

			if($rel['code'] == 200){
				$this->success('新增成功', '', '_parent_reload');
			}else{
				$this->error($rel['message']);
			}

		}
		
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('新增规格') // 设置页面标题
            ->addFormItems([ // 批量添加表单项
                ['text', 'title', '规格名称'],
                ['text', 'code', '规格编码', '必填，可由英文字母、数字组成'],
            ])
			->addText('sort', '排序', '', 100)
            ->fetch();
    }
	
	/**
     * 编辑
     * @author shiqiang <976162041@qq.com>
     * @return mixed
     * @throws \think\Exception
     */
    public function edit($id = ''){   
		if ($id === '') $this->error('缺少参数');
		// 保存数据
		if ($this->request->isPost()) {
			$data = $this->request->post('', null, 'trim');
			$data['id'] = $id;
			$title      = isset($data['title']) ? $data['title'] : '';
			$code  		= isset($data['code']) ? $data['code'] : '';
			$sort  		= isset($data['sort']) ? $data['sort'] : '';

			//数据验证
			$Validate = validate('Specifications', 'validate');
			if(!$Validate -> scene('specifications_edit') -> check($data)){
				$this->error($Validate -> getError());
			}
			
			$rel = model('ErpSpecifications','model') -> editData($id ,$title, $sort, $code);
			if($rel['code'] == 200){
				$this->success('编辑成功', '', '_parent_reload');
			}else{
				$this->error($rel['message']);
			}

		}
		
		$info = model('ErpSpecifications', 'model') -> find($id);
		
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('编辑规格')
            ->addFormItems([
				['text', 'title', '规格名称'],
                ['text', 'code', '规格编码', '必填，可由英文字母、数字组成'],
            ])
			->addText('sort', '排序')
			->setFormData($info)
            ->fetch();
    }
}

